<!DOCTYPE html>  
<html>
<meta charset="utf-8" />  
<title>Router</title>  
<script language="javascript"type="text/javascript">  

</script>  
<body>
<h2>Router</h2>    
</body>
<script>
    // history
    // 1、history.pushState(stateObj, title, url);这个方法会往当前会话的历史栈中放入一条记录，stateObj是用户自定义的对象，用于记录一些有用的数据，title是标题信息，第三个参数是要放入的url信息。例如我们储存个人信息可以执行history.pushState({id: 1}, ‘name: ff’, ‘?info=person’);
    // 2、history.replaceState(stateObj, title, url); 这个方法于pushState类似，唯一不同的是，执行这个操作后，浏览器会对会话历史栈内的记录进行替换而不是添加，在特定场景下是比较适用的。
    function preview(obj, isSwitch) { 
        var operation = isSwitch ? 'replaceState' : 'pushState';  
        //往历史记录栈中放入一条记录或者替换一条记录  
        console.log('operation',operation)
        window.history[operation](obj, 'name: ' + obj, '?preview=' + obj);  
    } 

    // preview({name:'xw'},true)
    // preview({age:'12'},true)
    // preview({name:'xw'})
    // preview({age:'12'})
    // console.log(window.history)

    window.history.pushState({name:'xw'},'title:test','?id=1314')
    console.log(window.history)
</script>

</html>